package org.ala.shopping_test.shopping_center.repository.category.query;

import java.util.List;
import org.ala.shopping_test.shopping_center.repository.category.entity.ShoppingCategoryDO;
import java.util.ArrayList;
import java.io.Serializable;

/**
 *	Query (shopping_category)
 *  品类表
 *
 *	@author 骆毅 (ala)
 *	@date 2025-03-17 11:51:36
 */
public class ShoppingCategoryQuery extends ShoppingCategoryDO implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     *  品类id
     */
    protected Long id;
    protected List<Long> idIn;
    protected Long idGt;
    protected Long idGte;
    protected Long idLt;
    protected Long idLte;
    /**
     *  上级品类id
     */
    protected Long parentId;
    protected List<Long> parentIdIn;
    protected Long parentIdGt;
    protected Long parentIdGte;
    protected Long parentIdLt;
    protected Long parentIdLte;
    /**
     *  品类名称
     */
    protected String categoryName;
    protected List<String> categoryNameIn;
    protected String categoryNameXLike;
    protected String categoryNameXLeft;
    protected String categoryNameXRight;
    /**
     *  上级品类编码-品类名首字母缩写
     */
    protected String code;
    protected List<String> codeIn;
    protected String codeXLike;
    protected String codeXLeft;
    protected String codeXRight;
    /**
     *  记录创建时间
     */
    protected java.sql.Timestamp createTime;
    protected List<java.sql.Timestamp> createTimeIn;
    protected java.sql.Timestamp createTimeGt;
    protected java.sql.Timestamp createTimeGte;
    protected java.sql.Timestamp createTimeLt;
    protected java.sql.Timestamp createTimeLte;
    /**
     *  记录最后修改时间
     */
    protected java.sql.Timestamp modifyTime;
    protected List<java.sql.Timestamp> modifyTimeIn;
    protected java.sql.Timestamp modifyTimeGt;
    protected java.sql.Timestamp modifyTimeGte;
    protected java.sql.Timestamp modifyTimeLt;
    protected java.sql.Timestamp modifyTimeLte;


    public static ShoppingCategoryQuery build() {return new ShoppingCategoryQuery();}


    public Long getId() {return id;}
    public void setId(Long id) { this.id = id; }
    public ShoppingCategoryQuery id(Long id) { this.id = id; return this; }

    public List<Long> getIdIn() {return idIn;}
    public void setIdIn(List<Long> idIn) { this.idIn = idIn; }
    public ShoppingCategoryQuery idIn(List<Long> idIn) { this.idIn = idIn; return this; }
    public ShoppingCategoryQuery idAppend(Long id) { if (idIn == null) { idIn = new ArrayList<>(); } idIn.add(id); return this; }

    public Long getIdGt() {return idGt;}
    public void setIdGt(Long idGt) { this.idGt = idGt; }
    public ShoppingCategoryQuery idGt(Long idGt) { this.idGt = idGt; return this; }

    public Long getIdGte() {return idGte;}
    public void setIdGte(Long idGte) { this.idGte = idGte; }
    public ShoppingCategoryQuery idGte(Long idGte) { this.idGte = idGte; return this; }

    public Long getIdLt() {return idLt;}
    public void setIdLt(Long idLt) { this.idLt = idLt; }
    public ShoppingCategoryQuery idLt(Long idLt) { this.idLt = idLt; return this; }

    public Long getIdLte() {return idLte;}
    public void setIdLte(Long idLte) { this.idLte = idLte; }
    public ShoppingCategoryQuery idLte(Long idLte) { this.idLte = idLte; return this; }


    public Long getParentId() {return parentId;}
    public void setParentId(Long parentId) { this.parentId = parentId; }
    public ShoppingCategoryQuery parentId(Long parentId) { this.parentId = parentId; return this; }

    public List<Long> getParentIdIn() {return parentIdIn;}
    public void setParentIdIn(List<Long> parentIdIn) { this.parentIdIn = parentIdIn; }
    public ShoppingCategoryQuery parentIdIn(List<Long> parentIdIn) { this.parentIdIn = parentIdIn; return this; }
    public ShoppingCategoryQuery parentIdAppend(Long parentId) { if (parentIdIn == null) { parentIdIn = new ArrayList<>(); } parentIdIn.add(parentId); return this; }

    public Long getParentIdGt() {return parentIdGt;}
    public void setParentIdGt(Long parentIdGt) { this.parentIdGt = parentIdGt; }
    public ShoppingCategoryQuery parentIdGt(Long parentIdGt) { this.parentIdGt = parentIdGt; return this; }

    public Long getParentIdGte() {return parentIdGte;}
    public void setParentIdGte(Long parentIdGte) { this.parentIdGte = parentIdGte; }
    public ShoppingCategoryQuery parentIdGte(Long parentIdGte) { this.parentIdGte = parentIdGte; return this; }

    public Long getParentIdLt() {return parentIdLt;}
    public void setParentIdLt(Long parentIdLt) { this.parentIdLt = parentIdLt; }
    public ShoppingCategoryQuery parentIdLt(Long parentIdLt) { this.parentIdLt = parentIdLt; return this; }

    public Long getParentIdLte() {return parentIdLte;}
    public void setParentIdLte(Long parentIdLte) { this.parentIdLte = parentIdLte; }
    public ShoppingCategoryQuery parentIdLte(Long parentIdLte) { this.parentIdLte = parentIdLte; return this; }


    public String getCategoryName() {return categoryName;}
    public void setCategoryName(String categoryName) { this.categoryName = categoryName; }
    public ShoppingCategoryQuery categoryName(String categoryName) { this.categoryName = categoryName; return this; }

    public List<String> getCategoryNameIn() {return categoryNameIn;}
    public void setCategoryNameIn(List<String> categoryNameIn) { this.categoryNameIn = categoryNameIn; }
    public ShoppingCategoryQuery categoryNameIn(List<String> categoryNameIn) { this.categoryNameIn = categoryNameIn; return this; }
    public ShoppingCategoryQuery categoryNameAppend(String categoryName) { if (categoryNameIn == null) { categoryNameIn = new ArrayList<>(); } categoryNameIn.add(categoryName); return this; }

    public String getCategoryNameXLike() {return categoryNameXLike;}
    public void setCategoryNameXLike(String categoryNameXLike) { this.categoryNameXLike = categoryNameXLike; }
    public ShoppingCategoryQuery categoryNameXLike(String categoryNameXLike) { this.categoryNameXLike = categoryNameXLike; return this; }

    public String getCategoryNameXLeft() {return categoryNameXLeft;}
    public void setCategoryNameXLeft(String categoryNameXLeft) { this.categoryNameXLeft = categoryNameXLeft; }
    public ShoppingCategoryQuery categoryNameXLeft(String categoryNameXLeft) { this.categoryNameXLeft = categoryNameXLeft; return this; }

    public String getCategoryNameXRight() {return categoryNameXRight;}
    public void setCategoryNameXRight(String categoryNameXRight) { this.categoryNameXRight = categoryNameXRight; }
    public ShoppingCategoryQuery categoryNameXRight(String categoryNameXRight) { this.categoryNameXRight = categoryNameXRight; return this; }


    public String getCode() {return code;}
    public void setCode(String code) { this.code = code; }
    public ShoppingCategoryQuery code(String code) { this.code = code; return this; }

    public List<String> getCodeIn() {return codeIn;}
    public void setCodeIn(List<String> codeIn) { this.codeIn = codeIn; }
    public ShoppingCategoryQuery codeIn(List<String> codeIn) { this.codeIn = codeIn; return this; }
    public ShoppingCategoryQuery codeAppend(String code) { if (codeIn == null) { codeIn = new ArrayList<>(); } codeIn.add(code); return this; }

    public String getCodeXLike() {return codeXLike;}
    public void setCodeXLike(String codeXLike) { this.codeXLike = codeXLike; }
    public ShoppingCategoryQuery codeXLike(String codeXLike) { this.codeXLike = codeXLike; return this; }

    public String getCodeXLeft() {return codeXLeft;}
    public void setCodeXLeft(String codeXLeft) { this.codeXLeft = codeXLeft; }
    public ShoppingCategoryQuery codeXLeft(String codeXLeft) { this.codeXLeft = codeXLeft; return this; }

    public String getCodeXRight() {return codeXRight;}
    public void setCodeXRight(String codeXRight) { this.codeXRight = codeXRight; }
    public ShoppingCategoryQuery codeXRight(String codeXRight) { this.codeXRight = codeXRight; return this; }


    public java.sql.Timestamp getCreateTime() {return createTime;}
    public void setCreateTime(java.sql.Timestamp createTime) { this.createTime = createTime; }
    public ShoppingCategoryQuery createTime(java.sql.Timestamp createTime) { this.createTime = createTime; return this; }

    public List<java.sql.Timestamp> getCreateTimeIn() {return createTimeIn;}
    public void setCreateTimeIn(List<java.sql.Timestamp> createTimeIn) { this.createTimeIn = createTimeIn; }
    public ShoppingCategoryQuery createTimeIn(List<java.sql.Timestamp> createTimeIn) { this.createTimeIn = createTimeIn; return this; }
    public ShoppingCategoryQuery createTimeAppend(java.sql.Timestamp createTime) { if (createTimeIn == null) { createTimeIn = new ArrayList<>(); } createTimeIn.add(createTime); return this; }

    public java.sql.Timestamp getCreateTimeGt() {return createTimeGt;}
    public void setCreateTimeGt(java.sql.Timestamp createTimeGt) { this.createTimeGt = createTimeGt; }
    public ShoppingCategoryQuery createTimeGt(java.sql.Timestamp createTimeGt) { this.createTimeGt = createTimeGt; return this; }

    public java.sql.Timestamp getCreateTimeGte() {return createTimeGte;}
    public void setCreateTimeGte(java.sql.Timestamp createTimeGte) { this.createTimeGte = createTimeGte; }
    public ShoppingCategoryQuery createTimeGte(java.sql.Timestamp createTimeGte) { this.createTimeGte = createTimeGte; return this; }

    public java.sql.Timestamp getCreateTimeLt() {return createTimeLt;}
    public void setCreateTimeLt(java.sql.Timestamp createTimeLt) { this.createTimeLt = createTimeLt; }
    public ShoppingCategoryQuery createTimeLt(java.sql.Timestamp createTimeLt) { this.createTimeLt = createTimeLt; return this; }

    public java.sql.Timestamp getCreateTimeLte() {return createTimeLte;}
    public void setCreateTimeLte(java.sql.Timestamp createTimeLte) { this.createTimeLte = createTimeLte; }
    public ShoppingCategoryQuery createTimeLte(java.sql.Timestamp createTimeLte) { this.createTimeLte = createTimeLte; return this; }


    public java.sql.Timestamp getModifyTime() {return modifyTime;}
    public void setModifyTime(java.sql.Timestamp modifyTime) { this.modifyTime = modifyTime; }
    public ShoppingCategoryQuery modifyTime(java.sql.Timestamp modifyTime) { this.modifyTime = modifyTime; return this; }

    public List<java.sql.Timestamp> getModifyTimeIn() {return modifyTimeIn;}
    public void setModifyTimeIn(List<java.sql.Timestamp> modifyTimeIn) { this.modifyTimeIn = modifyTimeIn; }
    public ShoppingCategoryQuery modifyTimeIn(List<java.sql.Timestamp> modifyTimeIn) { this.modifyTimeIn = modifyTimeIn; return this; }
    public ShoppingCategoryQuery modifyTimeAppend(java.sql.Timestamp modifyTime) { if (modifyTimeIn == null) { modifyTimeIn = new ArrayList<>(); } modifyTimeIn.add(modifyTime); return this; }

    public java.sql.Timestamp getModifyTimeGt() {return modifyTimeGt;}
    public void setModifyTimeGt(java.sql.Timestamp modifyTimeGt) { this.modifyTimeGt = modifyTimeGt; }
    public ShoppingCategoryQuery modifyTimeGt(java.sql.Timestamp modifyTimeGt) { this.modifyTimeGt = modifyTimeGt; return this; }

    public java.sql.Timestamp getModifyTimeGte() {return modifyTimeGte;}
    public void setModifyTimeGte(java.sql.Timestamp modifyTimeGte) { this.modifyTimeGte = modifyTimeGte; }
    public ShoppingCategoryQuery modifyTimeGte(java.sql.Timestamp modifyTimeGte) { this.modifyTimeGte = modifyTimeGte; return this; }

    public java.sql.Timestamp getModifyTimeLt() {return modifyTimeLt;}
    public void setModifyTimeLt(java.sql.Timestamp modifyTimeLt) { this.modifyTimeLt = modifyTimeLt; }
    public ShoppingCategoryQuery modifyTimeLt(java.sql.Timestamp modifyTimeLt) { this.modifyTimeLt = modifyTimeLt; return this; }

    public java.sql.Timestamp getModifyTimeLte() {return modifyTimeLte;}
    public void setModifyTimeLte(java.sql.Timestamp modifyTimeLte) { this.modifyTimeLte = modifyTimeLte; }
    public ShoppingCategoryQuery modifyTimeLte(java.sql.Timestamp modifyTimeLte) { this.modifyTimeLte = modifyTimeLte; return this; }



    /**
     *  是否为空
     *  <p> 仅仅是每个字段的为空检测。若存在特殊空判，需要自行实现
     */
    public boolean isEmpty() {
        if (id != null) {return false;}
        if (idIn != null && !idIn.isEmpty()) {return false;}
        if (idGt != null ) {return false;}
        if (idGte != null ) {return false;}
        if (idLt != null ) {return false;}
        if (idLte != null ) {return false;}
        if (parentId != null) {return false;}
        if (parentIdIn != null && !parentIdIn.isEmpty()) {return false;}
        if (parentIdGt != null ) {return false;}
        if (parentIdGte != null ) {return false;}
        if (parentIdLt != null ) {return false;}
        if (parentIdLte != null ) {return false;}
        if (categoryName != null) {return false;}
        if (categoryNameIn != null && !categoryNameIn.isEmpty()) {return false;}
        if (categoryNameXLike != null && categoryNameXLike.isEmpty()) {return false;}
        if (categoryNameXLeft != null && categoryNameXLeft.isEmpty()) {return false;}
        if (categoryNameXRight != null && categoryNameXRight.isEmpty()) {return false;}
        if (code != null) {return false;}
        if (codeIn != null && !codeIn.isEmpty()) {return false;}
        if (codeXLike != null && codeXLike.isEmpty()) {return false;}
        if (codeXLeft != null && codeXLeft.isEmpty()) {return false;}
        if (codeXRight != null && codeXRight.isEmpty()) {return false;}
        if (createTime != null) {return false;}
        if (createTimeIn != null && !createTimeIn.isEmpty()) {return false;}
        if (createTimeGt != null ) {return false;}
        if (createTimeGte != null ) {return false;}
        if (createTimeLt != null ) {return false;}
        if (createTimeLte != null ) {return false;}
        if (modifyTime != null) {return false;}
        if (modifyTimeIn != null && !modifyTimeIn.isEmpty()) {return false;}
        if (modifyTimeGt != null ) {return false;}
        if (modifyTimeGte != null ) {return false;}
        if (modifyTimeLt != null ) {return false;}
        if (modifyTimeLte != null ) {return false;}
        return true;
    }
    /**
     *  copy（注：这是浅拷贝）
     */
    public ShoppingCategoryQuery copy() {
        ShoppingCategoryQuery copy = new ShoppingCategoryQuery();
        copy.id = id;
        copy.idIn = idIn;
        copy.idGt = idGt;
        copy.idGte = idGt;
        copy.idLt = idLt;
        copy.idLte = idLte;
        copy.parentId = parentId;
        copy.parentIdIn = parentIdIn;
        copy.parentIdGt = parentIdGt;
        copy.parentIdGte = parentIdGt;
        copy.parentIdLt = parentIdLt;
        copy.parentIdLte = parentIdLte;
        copy.categoryName = categoryName;
        copy.categoryNameIn = categoryNameIn;
        copy.categoryNameXLike = categoryNameXLike;
        copy.categoryNameXLeft = categoryNameXLeft;
        copy.categoryNameXRight = categoryNameXRight;
        copy.code = code;
        copy.codeIn = codeIn;
        copy.codeXLike = codeXLike;
        copy.codeXLeft = codeXLeft;
        copy.codeXRight = codeXRight;
        copy.createTime = createTime;
        copy.createTimeIn = createTimeIn;
        copy.createTimeGt = createTimeGt;
        copy.createTimeGte = createTimeGt;
        copy.createTimeLt = createTimeLt;
        copy.createTimeLte = createTimeLte;
        copy.modifyTime = modifyTime;
        copy.modifyTimeIn = modifyTimeIn;
        copy.modifyTimeGt = modifyTimeGt;
        copy.modifyTimeGte = modifyTimeGt;
        copy.modifyTimeLt = modifyTimeLt;
        copy.modifyTimeLte = modifyTimeLte;
        return copy;
    }
}
